package com.wtwd.device.netty.code;

import com.alibaba.fastjson.JSONObject;
import com.wtwd.device.protocol.AppProtocol;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToMessageEncoder;
import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;
import lombok.extern.slf4j.Slf4j;

import java.util.List;

@Slf4j
public class WTEncoder extends MessageToMessageEncoder<AppProtocol> {

    @Override
    protected void encode(ChannelHandlerContext ctx, AppProtocol protocol, List<Object> list) throws Exception {
        // 创建TextWebSocketFrame
        TextWebSocketFrame textWebSocketFrame = new TextWebSocketFrame(JSONObject.toJSONString(protocol));
        // 将TextWebSocketFrame添加到输出列表
        list.add(textWebSocketFrame);
        // 打印日志
        log.info("channelId:{} 服务器发送数据：{}", ctx.channel().id(), protocol.toString());
    }
}
